package com.shuang.tree38;

public class GetMinimumDifference {
    //将二叉搜索树想成一个递归数组 （中序遍历）
    //使用全局变量记录前一个结点 和 结果值
    TreeNode preNode;
    int result = Integer.MAX_VALUE;

    public int getMinimumDifference(TreeNode root) {

        if (root == null) {
            return 0;
        }
        //递归实现 封装结果
        traversal(root);

        return result;
    }

    //中序递归
    public void traversal(TreeNode root){

        //终止条件
        if (root == null){
            return;
        }

        //左
        traversal(root.left);
        //中
        if (preNode != null){
            result = Math.min(result, root.val - preNode.val);
        }
        //更新前一个节点
        preNode = root;
        //右
        traversal(root.right);
    }
}
